<template>
  <div>
      <h1>人员列表</h1>
      <h3 style="color:red">Count组件的求和为：{{sum}}</h3>
      <h3>列表中第一个人的名字是：{{firstPersonName}}</h3>
      <input type="text" placeholder="请输入名字" v-model="name"/>
      <button @click="add">添加</button>
      <button @click="addWang">添加一个姓王的人</button>
      <button @click="addPersonServer">向服务器请求添加的人</button>
      <ul>
          <li v-for="p in personList" :key="p.id">{{p.name}}</li>
      </ul>
  </div>
</template>

<script>
// import {mapState} from 'vuex'
import {nanoid} from 'nanoid' //唯一id工具 uuid的小弟 （轻量级）
    export default {
        name:'Person',
        data(){
            return{
                name:''
            }
        },
        computed:{
            personList(){
                return this.$store.state.personOptions.personList
            },
            //...mapState({personList:'personList'})
            sum(){
                 return this.$store.state.countOptions.sum
            },
            firstPersonName(){
                return this.$store.getters['personOptions/this.firstPersonName']
            }
        },
        methods:{
            add(){
                const personObj={id:nanoid(),name:this.name}
                this.$store.commit('personOptions/ADD_PERSON',personObj)
                this.name=''
            },
             addWang(){
                const personObj={id:nanoid(),name:this.name}
                this.$store.dispatch('personOptions/addPersonWang',personObj)
                this.name=''
            },
            addPersonServer(){
                //去访问vuex 的actions进行操作从服务器获取数据
                 this.$store.dispatch('personOptions/addPersonServer')
            }
        }
    }
</script>

<style>

</style>